package Demo.Java窗口;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class LoginFrame extends JFrame {

    private JTextField txtName;
    private JPasswordField txtPwd;

    String user = "admin";
    String pwd = "123456";

    public LoginFrame() {
        //设置窗口标题
        this.setTitle("登录窗口");
        //设置位置和尺寸
        this.setBounds(300, 100, 300, 200);
        //关闭窗口
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //swing窗口有默认的布局管理器
        //常用的布局管理器 BorderLayout  FlowLayout  GridLayout CardLayout null
        // null 布局  ---- 自定义布局，简单来说自己需要定义每个控件位置和大小
        // this.setLayout(null);

        //BorderLayout 边框布局 默认的布局 东南西北中布局,默认放在中间，而且这个布局每个位置只能放一个控件
        //FlowLayout 流式布局 和css的float相似，依次排列，如果一行放不下，就会挤到下一行，
        //流式布局里面的控件，都默认没有尺寸，尺寸的大小由控件中的内容决定
        //this.setLayout(new FlowLayout());
        //网格布局 GridLayout 一句网格依次排列

        //前两个参数表示几行几列
        //后两个参数表示水平和垂直的间隔
        //this.setLayout(new GridLayout(1,1,5,5));

       /*
        JButton btn1 = new JButton("确定1");
        JButton btn2 = new JButton("确定2");
        JButton btn3 = new JButton("确定3");
        JButton btn4 = new JButton("确定4");
        JButton btn5 = new JButton("确定5");
        */

        //容器组件，这个组件专门用来放其他组件的
        //JPanel 有布局管理器，默认是流式布局
        /*JPanel panel1 = new JPanel();
        JPanel panel2 = new JPanel();
        JPanel panel3 = new JPanel();
        panel1.add(btn1);
        panel1.add(btn2);
        panel2.add(btn3);
        panel2.add(btn4);
        panel3.add(btn5);

        this.add(panel1);
        this.add(panel2,BorderLayout.NORTH);
        this.add(panel3,BorderLayout.SOUTH);*/

        //边框布局放入不同的方向位置 东南西北中  五个方向
//        this.add(btn1, BorderLayout.NORTH);
//        this.add(btn2, BorderLayout.SOUTH);
//        this.add(btn3, BorderLayout.WEST);
//        this.add(btn4, BorderLayout.EAST);
//        this.add(btn5, BorderLayout.CENTER);


        //使用网格布局（特点：每一个组件必须自己设置尺寸和位置）
        //rows：排  cols：列  hagp：水平间距   vagp：纵向距离
        this.setLayout(new GridLayout(3, 1, 5, 5));

        JPanel p1 = new JPanel();
        //文本框标题
        JLabel lblName = new JLabel("姓名");
        //创建一个文本输入框
        JTextField txtName = new JTextField(20);
        //把文本框名字加入p1
        p1.add(lblName);
        //把文本框加入p1
        p1.add(txtName);
        //在窗口显示p1
        this.add(p1);

        JPanel p2 = new JPanel();
        JLabel lblPwd = new JLabel("密码");
        JPasswordField txtPwd = new JPasswordField(20);
        p2.add(lblPwd);
        p2.add(txtPwd);
        this.add(p2);


        JPanel p3 = new JPanel();
        JButton btnLogin = new JButton("登录");
        JButton btnCancel = new JButton("取消");
        p3.add(btnLogin);
        p3.add(btnCancel);
        this.add(p3);
        //创建一个正确的账号和密码

        //添加一个事件监听
//        MyActionListener myActionListener = new MyActionListener();
//        btnLogin.addActionListener(myActionListener);
        btnLogin.addActionListener(new ActionListener() {
            //添加一个记数
            int num = 0;
            public void actionPerformed(ActionEvent e) {
                String username = txtName.getText();
                String password = new String(txtPwd.getPassword());
                //如果输入的账号 等于 user
                if (username.equals(user)
                        && password.equals(pwd)) {
                    //新弹出一个对话框并显示 message后的内容
                    JOptionPane.showMessageDialog(null, username + "  " + password+"成功");
                    ChatFrame chatFrame = new ChatFrame();
                    LoginFrame.this.dispose();
                } else {
                    JOptionPane.showMessageDialog(null, "密码错误");
                    txtName.setText("");
                    txtPwd.setText("");
                    num++;
                }
                if (num==2){
                    JOptionPane.showMessageDialog(null,"您还有最后一次机会");
                }
                if (num==3){
                    JOptionPane.showMessageDialog(null,"密码错误达到三次关闭程序");
                   System.exit(1);
                }
            }
        });
        //显示窗口
        this.setVisible(true);
    }

    public class  MyActionListener implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent e) {
            String username = txtName.getText();
            String password = new String(txtPwd.getPassword());
            JOptionPane.showMessageDialog(null,username + "---" + password);
        }
    }


    public static void main(String[] args) {
        LoginFrame loginFrame = new LoginFrame();
    }
}
